package com.sdu.cloudservice.service;

import com.sdu.cloudservice.dto.Envelope;

import java.text.ParseException;

/**
 * 19-07-01 lxf
 */
public interface PredictPriceService {
    /**
     * 得到可用算法
     * @return
     */
    public Envelope getAlgorithm();
    /**
     * [start,end)但仍需bigger，需要确定predict中是否存在足够的predict
     * end的价格需是前一时刻的。predict时端点值比存在。
     * start = max(start,now)
     * start-end<2d，只给now-end，now下取整
     *
     * 改为固定两天的predict，并返回前一天的actual，基于now。
     * @param zoneId
     * @param instanceId
     * @return
     * @throws ParseException
     */
    public Envelope get2DayPredictPrice(String zoneId, String instanceId, int algType,String username) throws ParseException;

    /**
     * 返回近三天的act和predict的对比
     * @param zoneId
     * @param instanceId
     * @param algType
     * @return
     */
    public Envelope get3DayActPreDif(String zoneId, String instanceId, int algType, String username) throws ParseException;

    /**
     * 返回近期的dif,最少给近3天（没有，会预测）
     * actual:  List<ActualPriceEntity>
     * predict: List<List<PredictPriceEntity>>  内层list不会是null
     * @param zoneId
     * @param instanceId
     * @param algType
     * @param username
     * @param days
     * @return
     * @throws ParseException
     */
    public Envelope getActPreDif(String zoneId, String instanceId, int algType, String username,int days) throws ParseException;
}
